//import api from '@/api/index'   // 引入所有
import { permission } from '@/api/index'  // 单个引入   
// 导入 前端定义好的完整路由信息
import { menu } from '@/router/menu'
// 导入路由 和 基本路由信息
import router, { baseRoutes } from '@/router/index'

// 导入处理菜单的方法
import { ruleMenu } from '@/utils/utils'

import _ from 'lodash'
// 储存后端返回的动态导航
export default{
    namespaced:true,
    state:{
        // 动态导航
        dyMenuList:[]
    },
    mutations:{
       // 设置菜单导航
       setMenuList(state,payload){
          state.dyMenuList = payload
       },
       // 清空菜单导航
       removeMenuList(state){
          state.dyMenuList = []
       } 
    },
    actions:{
       // 定义去请求动态路由信息的方法
       async getMenuList({commit,rootState}){
         let res = await permission({token:rootState.login.userInfo.token})
         console.log('后端返回的动态导航',res.data.data);
         console.log('前端本有的导航',menu);
         // 其实前端本地 所有的导航都已经存在  只要根据不同用户登录 后台返回不同的导航数组  前端导航数组  和 后端导航数组 进行匹配 
         // 把 配皮到的导航数组 追加到 路由就可以了
         let myMenu = ruleMenu(menu,res.data.data)
         console.log('处理好的菜单',myMenu);

         // 存处理好的菜单 
         commit('setMenuList',myMenu)

         // 2 匹配好的菜单  追加到 baseRoutes 里面  3 最后 加入到  router 里面
         // baseRoutes = [{path: '/',name:'layout',children:[{}] }]
         // 基础菜单 追加一次后要进行 深拷贝  不然多次点击 会一直追加 
         let myBaseRoutese = _.cloneDeep(baseRoutes) 
         myBaseRoutese[0].children.push(...myMenu)
         console.log('myBaseRoutese6666',myBaseRoutese);
         return myBaseRoutese;
       }
    }
 }